home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / util / misc / PatchGen.lha / PatchGen.doc < prev    next >
Text File  |  1994-09-18  |  5KB  |  130 lines

  1.  
  2.                                 Patch Generator
  3.  
  4.                  (c) 1994 Martin Mares, MJSoft System Software
  5.  
  6. ================================================================================
  7.  
  8.  
  9. Preface
  10. =======
  11.  
  12.    PatchGen, PatchGenL, Patcher and their documentation are Copyright (c) Martin
  13. Mares, MJSoft System Software, Prague, Czech Republic.
  14.  
  15.    This  archive  can  be  freely redistributed, as long as all of its files are
  16. included   in   their   original   form  without  any  additions,  deletions  or
  17. modifications,  and  no more than a nominal fee is charged for its distribution.
  18. All  copyright notices in the programs and accompanying documentation files must
  19. remain  on  their  places.  Also '.displayme' and other similar files may not be
  20. added.  This is generally known as FREEWARE.
  21.  
  22.    The only exception to this rule is the Patcher executable which can be spread
  23. without any restrictions in its original unmodified form in any kind of software
  24. package (including commercial products).
  25.  
  26.    This  software  is  provided  "AS  IS"  without  warranty of any kind, either
  27. expressed  or  implied.   The author is not responsible for any damage caused by
  28. it.
  29.  
  30.  
  31. Introduction
  32. ============
  33.  
  34.    Many people distribute new versions of software. This task can be done in two
  35. significantly different ways:
  36.  
  37.    (1) Redistributing all files.  This method is simple, the user has no need to
  38. have  the  older  version  to install the new one.  But the archives are usually
  39. lengthy and consume much disk space.
  40.  
  41.    (2)  Distribution of patches.  When this method is used, only the differences
  42. between  the  previous  version and the recent one are distributed.  The updates
  43. require  much  less disk space, but the user needs to have the previous version.
  44. This  turns  out  to  be  an  advantage  when distributing updates of commercial
  45. software,  because  the  new version is available only to legal users which have
  46. the old one.  Also third-party patches to commercial software can be spread this
  47. way legally.
  48.  
  49.    If  you want to use the second method of distribution, you need some software
  50. to generate and apply the patches.  There are already some patch generators (for
  51. example lpatch), but they're usually very slow, their size is not so small as it
  52. could  be  if  they  were  written  better and the products itself are big.  The
  53. solution is ...  PatchGen!
  54.  
  55.    PatchGen eliminates at least of the previously mentioned disadvantages -- its
  56. patch  files  are  relatively short and the programs themself are very small and
  57. run  under any version of AmigaDOS starting with 1.2 (I think it would work also
  58. under 1.1, but I have never seen this kickstart.  If you have it, let me know!).
  59.  
  60.  
  61. Requirements
  62. ============
  63.  
  64.    - Kickstart 1.2 or higher.
  65.  
  66.    - arp.library - it's required only by the patch generators. Patcher runs
  67. without it.
  68.  
  69.    - 68000 or higher
  70.  
  71.  
  72. Generating patches
  73. ==================
  74.  
  75.    There  are  two  patch  generators  in this archive:  PatchGen and PatchGenL.
  76. Both  of  them  produce  the  same  patch  file  format, but they use a slightly
  77. different algorithm.  For small files, use PatchGen.  For large files, PatchGenL
  78. could produce better results and might be faster.
  79.  
  80.    Usage:
  81.  
  82.        PatchGen[L] <file1> <file2> <dest> [CHANGE]
  83.  
  84.   <file1> - the older file
  85.   <file2> - the newer file (PatchGen will produce a patch to create <file2> from
  86. <file1>.
  87.    <dest> - file to write the patch table to
  88.    CHANGE  -  in some cases, the versions are too different to get a patch table
  89. of reasonable size, but you _want_ to make the new file dependent on the old one
  90. (commercial  software, grr!).  In this case, specify the CHANGE option.  The new
  91. file  will  be stored in simple way, but it will be encrypted by contents of the
  92. older  file  which makes it impossible to create the new file without having the
  93. old one.
  94.  
  95.    Some dots will be printed as a progress indicator.
  96.  
  97.    Warning:   Creation  of  patch  tables  requires a lot of memory -- a size of
  98. <file1> plus two times size of <file2>.
  99.  
  100.  
  101. Applying patches
  102. ================
  103.  
  104.    To apply the patches, enter:
  105.  
  106.        Patcher <file1> <file2> <patchtab>
  107.  
  108.    This  command  transforms <file1> to <file2> using given patch table produced
  109. by  PatchGen or PatchGenL.  The <file1> is checked to be the correct source file
  110. by comparing its checksum with the one stored in the patch file.
  111.  
  112.    Memory requirements: <file1> + <file2> + <patchfile>. (a lot of, grr!)
  113.  
  114.  
  115. Notes
  116. =====
  117.  
  118.    This  program  is  not the best solution if searching for differences between
  119. two text files.  In this case, it would be better to use GNU diff.
  120.  
  121.    Plans:
  122.  
  123.        - New version of Patcher eating less memory.
  124.  
  125.        - Faster searching algorithms.
  126.  
  127.  
  128.    Send suggestions, bug reports and flames to <mjsoft@k332.feld.cvut.cz>.
  129.  
  130.